"""
字典是一个存储键值对key: value的结构，字典用{}表示

定义字典字面量：{key:value, key:value, ... ..., key:value}

定义字典变量：变量名称 = {key:value, key:value, ... ..., key:value}

创建两个空字典
    a = {}
    b = dict()

key：不可以重复，重复添加，则覆盖原有数据

key和value可以是任意类型（key不可以是字典）  ---  字典可以嵌套
"""

# 定义字典
my_dict = {"小明": 18, "凯爹": 25, "鲁班七号": 20}

# 定义空字典
my_dict2 = {}
my_dict3 = dict()
print(f"字典1的内容是：{my_dict}，类型是：{type(my_dict)}")
print(f"字典2的内容是：{my_dict2}，类型是：{type(my_dict2)}")
print(f"字典3的内容是：{my_dict3}，类型是：{type(my_dict3)}")

# 通过key值获取value
score = my_dict["鲁班七号"]
print(f"鲁班七号的年龄是：{score}")

# 定义嵌套字典
stu_score = {
    "小明": {
        "语文": 77,
        "数学": 66,
        "英语": 33
    }, "凯爹": {
        "语文": 88,
        "数学": 86,
        "英语": 55
    }, "鲁班七号": {
        "语文": 99,
        "数学": 96,
        "英语": 66
    }
}
print(f"学生的考试信息是：{stu_score}")

# 从嵌套字典中获取信息
score = stu_score["凯爹"]["数学"]
print(f"凯爹的数学分数：{score}")

score = stu_score["鲁班七号"]["英语"]
print(f"鲁班七号的英语分数：{score}")

print("---------------------------------------------字典常用操作----------------------------------------")
my_dict = {"亚瑟": 18, "凯爹": 25, "鲁班七号": 20}
# 新增元素，语法：字典[key] = value
my_dict["程咬金"] = 30
print(f"字典经过新增后，结果：{my_dict}")

# 更新元素，语法：字典[key] = value
my_dict["亚瑟"] = 29
print(f"字典经过更新后，结果：{my_dict}")

# 删除元素
year = my_dict.pop("鲁班七号")
print(f"字典移除一个元素，结果：{my_dict}，鲁班七号的年龄是：{year}")

# 清空元素
my_dict.clear()
print(f"字典被清空了，结果：{my_dict}")

# 获取全部的key，语法：字典.keys()
my_dict = {"亚瑟": 18, "凯爹": 25, "鲁班七号": 20}
keys = my_dict.keys()
print(f"字典全部的key是：{keys}")

# 遍历字典
for key in keys:
    print(f"key:{key},value:{my_dict[key]}")

for key2 in my_dict:
    print(f"key:{key2},value:{my_dict[key2]}")

# 统计字典内的元素数量
count = len(my_dict)
print(f"字典中的元素数量是：{count}")

"""
可以容纳多个数据
可以容纳不同类型的数据
每一份数据是key:value键值对
可以通过key获取value，key不可以重复（重复会覆盖）
不支持下标索引
可以修改
支持for循环，不支持while循环
"""

print("---------------------------------------------练习：升职加薪----------------------------------------")
my_dict = {
    "王力宏": {
        "部门": "科技部",
        "工资": 3000,
        "级别": 1
    }, "周杰伦": {
        "部门": "市场部",
        "工资": 5000,
        "级别": 2
    }, "林俊杰": {
        "部门": "市场部",
        "工资": 7000,
        "级别": 3
    }, "张学友": {
        "部门": "科技部",
        "工资": 4000,
        "级别": 1
    }, "刘德华": {
        "部门": "市场部",
        "工资": 6000,
        "级别": 2
    }
}
print(my_dict)

for key in my_dict:
    if my_dict[key]["级别"] == 1:
        my_dict[key]["级别"] += 1
        my_dict[key]["工资"] += 1000

print(my_dict)

